\documentclass[a4paper,twoside,12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[frenchb]{babel}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage[pdftex]{graphicx, color}
\usepackage{float}
\usepackage{url}
%\usepackage[tmargin=2.5cm, bmargin=3cm,lmargin=2.5cm, rmargin=2cm]{geometry}

\usepackage{listings}

\begin{document}

 A partir de la modélisation faite en début de semestre, nous avons réussi à implémenter une application permettant de générer dans de nombreux cas des grilles de mots croisés en un temps acceptable (si les conditions sur la grille sont acceptables). Un utilisateur peut faire de nombreuses choses de manière aisé. 
 
Bien que l'interface graphique ne soit pas réellement adapté pour, un utilisateur peut jouer de manière presque agréable (si les définitions ont été éditées). 

On pourrait cependant imaginer quelques améliorations appréciables pour l'utilisateur comme par exemple pouvoir placer les cases noires ou imposer des mots lors de la génération. 
Une amélioration qui pourrait être utile est l'ajout d'une base de donnée de définition qui serait mise à jour lorsqu'un utilisateur ajouterait une définition sur une grille en ayant la possibilité de stocker plusieurs définitions pour le même mot. 

Concernant la rapidité du programme, on pourrait certainement l'améliorer fortement, notamment en ajoutant des conditions au niveau du temps d'éxécution de certaines fonctions (la recherche du mot laissant le plus de possibilités au coup suivant peut être particulièrement longue dans certains cas alors que ce n'est pas justifié).

Une spécifité de notre générateur est qu'il permet de se souvenir de nombreux nouveaux mots peu usités (ou d'apprendre de nouveaux mots dont on ne soupçonnait pas l'existence). 
En changeant de base de données, on pourrait obtenir des mots croisés dans des langues différentes, ou concernant des domaines spécifiques. Notre application est ainsi aisément modulable et multiplateforme. 


\end{document}